1. Field of the Invention
The present invention is directed toward the field of data transfer, and more particularly toward efficient techniques for transferring large amounts of data over networks.
2. Art Background
Historically, imaging systems have relied upon photographic film for the storage, distribution, and use of images. For example, medical images such as X-rays historically have been rendered on film sheets. The film sheets are stored in a repository such as a medical records library, and they are retrieved and distributed to doctors or other individuals for viewing. The images are viewed by placing the film on a viewing box that passes light through the film.
However, the use of photographic film for some imaging applications has considerable drawbacks. The need to physically retrieve a film from a repository imposes undue delay, particularly problematic when access time is important, such as when a medical emergency exists. Also, films tend to get lost or misplaced, so that costs may be increased and/or the quality of services rendered may be decreased.
For these reasons and others, it has become more common for images to be stored, distributed, and viewed in digital form using computer technology. In the medical field Picture Archival and Communication Systems or PACS have been in widespread use. In a typical PACS application, image data obtained by imaging equipment such as CT scanners or MRI scanners is stored in the form of computer data files. The size of a data file for an image varies depending on the size and resolution of the image. For example, a typical image file for a diagnostic-quality chest X-ray is on the order of 10 megabytes (MB). The image data files are usually formatted in a xe2x80x9cstandardxe2x80x9d or widely accepted format. In the medical field, one widely used image format is known as DICOM. The DICOM image data files are distributed over computer networks to specialized viewing stations capable of converting the image data to high-resolution images on a CRT display.
In imaging applications, such as medical imaging, it is important to display images at a high resolution, so that image details having potential diagnostic significance are visible. Concurrent viewing of multiple images, captured over time, is also desirable in order to enable the detection of changes that occur over a time period. The need for high resolution and multiple views translates into a need for high network bandwidth, large storage capacity, and significant processing power at the viewing stations. The traditional digitally encoded medical images, used in medical applications, usually require powerful and expensive computer systems to archive, distribute, manipulate, and display the medical images. Consequently, many current imaging systems, such as PACS, are very expensive. Because of this, a medical center having a PACS may have only a few image viewing stations, used primarily by specialists such as radiologists.
The demand for network bandwidth is very xe2x80x9cburstyxe2x80x9d in traditional image viewing systems, because typically the entire image is transferred to the viewing station over a brief interval after the image is requested. Significant network bandwidth is required in order to minimize the delay in rendering the image. For example, transmission of a 100 megabyte file over a network requires a large amount of bandwidth. Additional computer applications also require the transfer, over networks, of large data files. These large data files, such as medical images, present problems for servers, networks, and clients that possess limited resources. In addition to bandwidth, large processing resources, such as high-end computer workstations, are necessary to expeditiously process large data files.
With the speed of central processing units (CPUs) doubling every eighteen months, medical professionals have expected medical imaging computers to achieve the same level of improvement in price and performance. However, in reality, the input/output and transmission bandwidth of these computer systems have been less successful in making similar advances in speed and performance. For example, to transmit a sixteen bit per pixel medical image with a resolution of 512xc3x97512 pixels, approximately thirty-two seconds is required to transmit over an ISDN line at a rate of one hundred and twenty eight kilobits per second. Accordingly, it is desirable to develop techniques that efficiently transfer and manipulate large data files.
One desirable feature of some systems is the ability to allow a user to interact with the data file by selecting portions of the file to view. However, prior art techniques to transfer large data files require a user to wait an unacceptable amount of time to view the requested image. For example, it takes two seconds to receive a two kilobytexc3x972.5 K image (2 bytes per pixel) via a 5 megabyte per second communication link, and subsequently down sample and re-display less than twenty-five percent of the image data to a 1 Kxc3x971 K resolution display. The result of this slow downloading of data is compounded by some applications that require display of multiple images during a single session, such as medical imaging applications that require display of multiple images during evaluation. Even when employing the best lossless image data compression, which provides a three to one reduction in size, it still takes more than ten seconds to execute the transfer. These long latency periods render user interactive applications impractical. This bandwidth bottleneck is even more evident with the proliferation of Internet web applications. Also, significant resources are required at the client to manipulate the image in real time. Due to the above limitations, real-time user interaction with a system that displays large data files is prohibitive, if not impossible, using prior art techniques. Accordingly, it is desirable to develop a system that permits real-time user interaction with systems that transmit large data files over a network. It is also desirable to develop a system that balances the consumption of resources among server, network and client.
One model for transferring large data files over a network that attempts to maximize computer resources is known as the thin/thick client model. For example, the thin/thick client model for picture archive and communication system (xe2x80x9cPACSxe2x80x9d) covers environments that include a central server or capture device with various classes of review stations at different communication bandwidths. The xe2x80x9cthick clientxe2x80x9d typically consists of an expensive, high-resolution primary diagnosis station, and the xe2x80x9cthin clientxe2x80x9d consists of one of numerous satellite stations with various display resolutions and communication links. The thick clients, which are rarely configured without high-resolution monitors and a high-speed communication link to the image capture device or database, typically cost over $100,000. The majority implementations for thin clients are terminals equipped with a 1280xc3x971024 monitor and 10 baseT connection. For medical imaging applications, the thin client stations are typically not used for primary diagnoses, but are used as stations for consulting among physicians or conducting secondary diagnoses.
Typically, compression is used as the approach to solve bandwidth limited applications. Picture coding, using compression, has existed in the prior art for many decades. For example, facsimile machines, video telephones, digital video disk (DVD) players, digital satellite systems (DSSs), television receivers, and digital cameras are everyday appliances that all employ some type of image compression. However, with all the advancement in picture coding, the use of compression in medical imaging is very limited. Most of these compression schemes are lossy, in that data is lost when undergoing compression. Lossy compression is typically unacceptable in medical imaging applications. One reason that lossy compression is unacceptable in medical imaging applications is due to the potential liability from analyzing data of less than the highest informational content possible. In addition, lossy compression introduces unwanted artifacts into the medical image. Accordingly, it is imperative that medical images used in computer applications are preserved in the highest fidelity possible for diagnoses. Thus, there is an urgent need to identify solutions, beyond compression, that manipulate and display large images, such as medical images.
To reduce system bandwidth requirements without employing lossy compression techniques, picture coding using lossless techniques may be used at a limited efficiency. As discussed above, higher efficiencies can only be obtained through use of irreversible or lossy compression schemes. Typically, in designing systems, a choice at the onset is made between the use of lossy or lossless compression. The scalability from lossless to lossy compression is not offered, and there is no scalability if the picture is coded losslessly.
Another issue in transmitting large data files, such as medical images, is that the screen display is often substantially smaller than the resolution of the image itself. Typically, pictures with resolutions larger than the display size are encoded, transmitted and processed in its entirety for subsequent display or manipulation of the image. Because of the discrepancy between the image size and the user display size, the majority of the image information is discarded after processing at the recipient computer, and thus the discarded information is not displayed on the monitor. For example, medical images larger than 4Kxc3x974K, such as mammograms, must be cropped to fit into a limited screen space. Thus, even if the entire image is transmitted over a network, only a portion of the image is used in the limited screen space. The problem of discarding large amounts of information is not addressed by the current compression methods. Accordingly, it is desirable to utilize all data transmitted over a network to more efficiently use system resources.
A dynamic transfer syntax efficiently transfers data, including large data images, from a server to at least one client. Source data is transformed into a hierarchical representation. The hierarchical representation, consisting of essentially non-redundant data, is a plurality of levels of transform data, such that a level of the hierarchical representation comprises transform data sufficient to reconstruct the source data at a resolution corresponding to the level. A client application, running on the client, displays portions of the source data, including large images, to a user. For example, the dynamic transfer syntax of the present invention has applications in medical imaging. For this embodiment, the source data includes a digitized medical image generated from medical instrumentation.
To render an initial view at the client, which consists of a portion of the source image, the server transfers transform data from a level of the hierarchical representation corresponding to a desired resolution. In one embodiment, the server transfers transform data sufficient to reconstruct a low resolution view of the source image in a view finder window (e.g., 512xc3x97512 pixel window). For this embodiment, using the view finder window, the user may select specific views for display. To render a new view of the source image at the client, the client requests from the server additional transform data necessary to reconstruct the new view. Specifically, the client requests coefficients of the transform data corresponding to pixel coordinates of the new view of the source image necessary to reconstruct the source image. For example, the client may request transform data to zoom in on a particular section of the source image or to pan the source image. In response to the request, the server transfers to the client the additional transform data. The client reconstructs the new view from the coefficients transferred. Accordingly, the dynamic transfer syntax system transfers only the transform data required to reconstruct a requested image at the client, thus implementing a xe2x80x9cjust in timexe2x80x9d data delivery system.